{
 "cells": [
  {
   "cell_type": "code",
   "execution_count": null,
   "metadata": {},
   "outputs": [],
   "source": [
    "import os\n",
    "os.environ[\"WANDB_ENTITY\"] = \"mlclass\""
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 1,
   "metadata": {},
   "outputs": [
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "Using TensorFlow backend.\n"
     ]
    }
   ],
   "source": [
    "import keras\n",
    "import wandb\n",
    "from wandb.keras import WandbCallback\n",
    "from keras.models import Sequential\n",
    "from keras.layers import Dense, Flatten\n",
    "from keras.applications.resnet50 import ResNet50, decode_predictions, preprocess_input\n",
    "import groceries\n",
    "import matplotlib.pyplot as plt"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 2,
   "metadata": {},
   "outputs": [],
   "source": [
    "(x_train, y_train_raw), (x_test, y_test_raw), class_names = groceries.load_data()"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 3,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "<matplotlib.image.AxesImage at 0x7fca2debe240>"
      ]
     },
     "execution_count": 3,
     "metadata": {},
     "output_type": "execute_result"
    },
    {
     "data": {
      "image/png": "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\n",
      "text/plain": [
       "<Figure size 432x288 with 1 Axes>"
      ]
     },
     "metadata": {
      "needs_background": "light"
     },
     "output_type": "display_data"
    }
   ],
   "source": [
    "# take a look at the kinds of images we're dealing with\n",
    "plt.imshow(x_train[100].astype(int))"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 4,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "['BEANS',\n",
       " 'CAKE',\n",
       " 'CANDY',\n",
       " 'CEREAL',\n",
       " 'CHIPS',\n",
       " 'CHOCOLATE',\n",
       " 'COFFEE',\n",
       " 'CORN',\n",
       " 'FISH',\n",
       " 'FLOUR',\n",
       " 'HONEY',\n",
       " 'JAM',\n",
       " 'JUICE',\n",
       " 'MILK',\n",
       " 'NUTS',\n",
       " 'OIL',\n",
       " 'PASTA',\n",
       " 'RICE',\n",
       " 'SODA',\n",
       " 'SPICES',\n",
       " 'SUGAR',\n",
       " 'TEA',\n",
       " 'TOMATO_SAUCE',\n",
       " 'VINEGAR',\n",
       " 'WATER']"
      ]
     },
     "execution_count": 4,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "# Print out the classes we need to target\n",
    "class_names"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 5,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "(array([639., 439., 672., 199., 406., 602., 295., 504., 381., 560.]),\n",
       " array([ 0. ,  2.4,  4.8,  7.2,  9.6, 12. , 14.4, 16.8, 19.2, 21.6, 24. ]),\n",
       " <a list of 10 Patch objects>)"
      ]
     },
     "execution_count": 5,
     "metadata": {},
     "output_type": "execute_result"
    },
    {
     "data": {
      "image/png": "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\n",
      "text/plain": [
       "<Figure size 432x288 with 1 Axes>"
      ]
     },
     "metadata": {
      "needs_background": "light"
     },
     "output_type": "display_data"
    }
   ],
   "source": [
    "# check how balanced our class distribution is\n",
    "plt.hist(y_train_raw)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 6,
   "metadata": {},
   "outputs": [],
   "source": [
    "# One hot encode ouput\n",
    "y_train = keras.utils.to_categorical(y_train_raw)\n",
    "y_test = keras.utils.to_categorical(y_test_raw)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 7,
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "W&B Run: https://app.wandb.ai/mlclass/transfer learn/runs/qf6yjgj0\n",
      "Call `%%wandb` in the cell containing your training loop to display live results.\n",
      "Train on 4697 samples, validate on 250 samples\n",
      "Epoch 1/10\n",
      "4697/4697 [==============================] - 6s 1ms/step - loss: 8.6940 - acc: 0.0319 - val_loss: 9.5742 - val_acc: 0.0400\n",
      "Epoch 2/10\n",
      "4697/4697 [==============================] - 5s 1ms/step - loss: 8.6992 - acc: 0.0321 - val_loss: 9.5742 - val_acc: 0.0400\n",
      "Epoch 3/10\n",
      "4697/4697 [==============================] - 5s 1ms/step - loss: 8.6992 - acc: 0.0321 - val_loss: 9.5742 - val_acc: 0.0400\n",
      "Epoch 4/10\n",
      "4697/4697 [==============================] - 5s 1ms/step - loss: 8.6992 - acc: 0.0321 - val_loss: 9.5742 - val_acc: 0.0400\n",
      "Epoch 5/10\n",
      "4697/4697 [==============================] - 5s 1ms/step - loss: 8.6992 - acc: 0.0321 - val_loss: 9.5742 - val_acc: 0.0400\n",
      "Epoch 6/10\n",
      "4697/4697 [==============================] - 5s 1ms/step - loss: 8.6992 - acc: 0.0321 - val_loss: 9.5742 - val_acc: 0.0400\n",
      "Epoch 7/10\n",
      "4697/4697 [==============================] - 5s 1ms/step - loss: 8.6992 - acc: 0.0321 - val_loss: 9.5742 - val_acc: 0.0400\n",
      "Epoch 8/10\n",
      "4697/4697 [==============================] - 5s 1ms/step - loss: 8.6992 - acc: 0.0321 - val_loss: 9.5742 - val_acc: 0.0400\n",
      "Epoch 9/10\n",
      "4697/4697 [==============================] - 5s 1ms/step - loss: 8.6992 - acc: 0.0321 - val_loss: 9.5742 - val_acc: 0.0400\n",
      "Epoch 10/10\n",
      "4697/4697 [==============================] - 5s 1ms/step - loss: 8.6992 - acc: 0.0321 - val_loss: 9.5742 - val_acc: 0.0400\n"
     ]
    },
    {
     "data": {
      "text/plain": [
       "<keras.callbacks.History at 0x7fc978c93470>"
      ]
     },
     "execution_count": 7,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "# We build an extremely simple perceptron to try to fit our data\n",
    "\n",
    "x_train_normalized = x_train / 255.\n",
    "x_test_normalized = x_test / 255.\n",
    "\n",
    "very_simple_model=Sequential()\n",
    "very_simple_model.add(Flatten())\n",
    "very_simple_model.add(Dense(25, activation=\"sigmoid\"))\n",
    "very_simple_model.compile(loss=\"categorical_crossentropy\", optimizer=\"adam\", metrics=[\"accuracy\"])\n",
    "\n",
    "wandb.init(project=\"transfer learn\")\n",
    "very_simple_model.fit(x_train_normalized, y_train, epochs=10, validation_data=(x_test_normalized, y_test), callbacks=[WandbCallback()])"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 8,
   "metadata": {},
   "outputs": [],
   "source": [
    "# Load ResNet50 Trained on imagenet\n",
    "resnet_model = ResNet50(weights=\"imagenet\")"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 9,
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "__________________________________________________________________________________________________\n",
      "Layer (type)                    Output Shape         Param #     Connected to                     \n",
      "==================================================================================================\n",
      "input_1 (InputLayer)            (None, 224, 224, 3)  0                                            \n",
      "__________________________________________________________________________________________________\n",
      "conv1_pad (ZeroPadding2D)       (None, 230, 230, 3)  0           input_1[0][0]                    \n",
      "__________________________________________________________________________________________________\n",
      "conv1 (Conv2D)                  (None, 112, 112, 64) 9472        conv1_pad[0][0]                  \n",
      "__________________________________________________________________________________________________\n",
      "bn_conv1 (BatchNormalization)   (None, 112, 112, 64) 256         conv1[0][0]                      \n",
      "__________________________________________________________________________________________________\n",
      "activation_1 (Activation)       (None, 112, 112, 64) 0           bn_conv1[0][0]                   \n",
      "__________________________________________________________________________________________________\n",
      "pool1_pad (ZeroPadding2D)       (None, 114, 114, 64) 0           activation_1[0][0]               \n",
      "__________________________________________________________________________________________________\n",
      "max_pooling2d_1 (MaxPooling2D)  (None, 56, 56, 64)   0           pool1_pad[0][0]                  \n",
      "__________________________________________________________________________________________________\n",
      "res2a_branch2a (Conv2D)         (None, 56, 56, 64)   4160        max_pooling2d_1[0][0]            \n",
      "__________________________________________________________________________________________________\n",
      "bn2a_branch2a (BatchNormalizati (None, 56, 56, 64)   256         res2a_branch2a[0][0]             \n",
      "__________________________________________________________________________________________________\n",
      "activation_2 (Activation)       (None, 56, 56, 64)   0           bn2a_branch2a[0][0]              \n",
      "__________________________________________________________________________________________________\n",
      "res2a_branch2b (Conv2D)         (None, 56, 56, 64)   36928       activation_2[0][0]               \n",
      "__________________________________________________________________________________________________\n",
      "bn2a_branch2b (BatchNormalizati (None, 56, 56, 64)   256         res2a_branch2b[0][0]             \n",
      "__________________________________________________________________________________________________\n",
      "activation_3 (Activation)       (None, 56, 56, 64)   0           bn2a_branch2b[0][0]              \n",
      "__________________________________________________________________________________________________\n",
      "res2a_branch2c (Conv2D)         (None, 56, 56, 256)  16640       activation_3[0][0]               \n",
      "__________________________________________________________________________________________________\n",
      "res2a_branch1 (Conv2D)          (None, 56, 56, 256)  16640       max_pooling2d_1[0][0]            \n",
      "__________________________________________________________________________________________________\n",
      "bn2a_branch2c (BatchNormalizati (None, 56, 56, 256)  1024        res2a_branch2c[0][0]             \n",
      "__________________________________________________________________________________________________\n",
      "bn2a_branch1 (BatchNormalizatio (None, 56, 56, 256)  1024        res2a_branch1[0][0]              \n",
      "__________________________________________________________________________________________________\n",
      "add_1 (Add)                     (None, 56, 56, 256)  0           bn2a_branch2c[0][0]              \n",
      "                                                                 bn2a_branch1[0][0]               \n",
      "__________________________________________________________________________________________________\n",
      "activation_4 (Activation)       (None, 56, 56, 256)  0           add_1[0][0]                      \n",
      "__________________________________________________________________________________________________\n",
      "res2b_branch2a (Conv2D)         (None, 56, 56, 64)   16448       activation_4[0][0]               \n",
      "__________________________________________________________________________________________________\n",
      "bn2b_branch2a (BatchNormalizati (None, 56, 56, 64)   256         res2b_branch2a[0][0]             \n",
      "__________________________________________________________________________________________________\n",
      "activation_5 (Activation)       (None, 56, 56, 64)   0           bn2b_branch2a[0][0]              \n",
      "__________________________________________________________________________________________________\n",
      "res2b_branch2b (Conv2D)         (None, 56, 56, 64)   36928       activation_5[0][0]               \n",
      "__________________________________________________________________________________________________\n",
      "bn2b_branch2b (BatchNormalizati (None, 56, 56, 64)   256         res2b_branch2b[0][0]             \n",
      "__________________________________________________________________________________________________\n",
      "activation_6 (Activation)       (None, 56, 56, 64)   0           bn2b_branch2b[0][0]              \n",
      "__________________________________________________________________________________________________\n",
      "res2b_branch2c (Conv2D)         (None, 56, 56, 256)  16640       activation_6[0][0]               \n",
      "__________________________________________________________________________________________________\n",
      "bn2b_branch2c (BatchNormalizati (None, 56, 56, 256)  1024        res2b_branch2c[0][0]             \n",
      "__________________________________________________________________________________________________\n",
      "add_2 (Add)                     (None, 56, 56, 256)  0           bn2b_branch2c[0][0]              \n",
      "                                                                 activation_4[0][0]               \n",
      "__________________________________________________________________________________________________\n",
      "activation_7 (Activation)       (None, 56, 56, 256)  0           add_2[0][0]                      \n",
      "__________________________________________________________________________________________________\n",
      "res2c_branch2a (Conv2D)         (None, 56, 56, 64)   16448       activation_7[0][0]               \n",
      "__________________________________________________________________________________________________\n",
      "bn2c_branch2a (BatchNormalizati (None, 56, 56, 64)   256         res2c_branch2a[0][0]             \n",
      "__________________________________________________________________________________________________\n",
      "activation_8 (Activation)       (None, 56, 56, 64)   0           bn2c_branch2a[0][0]              \n",
      "__________________________________________________________________________________________________\n",
      "res2c_branch2b (Conv2D)         (None, 56, 56, 64)   36928       activation_8[0][0]               \n",
      "__________________________________________________________________________________________________\n",
      "bn2c_branch2b (BatchNormalizati (None, 56, 56, 64)   256         res2c_branch2b[0][0]             \n",
      "__________________________________________________________________________________________________\n",
      "activation_9 (Activation)       (None, 56, 56, 64)   0           bn2c_branch2b[0][0]              \n",
      "__________________________________________________________________________________________________\n",
      "res2c_branch2c (Conv2D)         (None, 56, 56, 256)  16640       activation_9[0][0]               \n",
      "__________________________________________________________________________________________________\n",
      "bn2c_branch2c (BatchNormalizati (None, 56, 56, 256)  1024        res2c_branch2c[0][0]             \n",
      "__________________________________________________________________________________________________\n",
      "add_3 (Add)                     (None, 56, 56, 256)  0           bn2c_branch2c[0][0]              \n",
      "                                                                 activation_7[0][0]               \n",
      "__________________________________________________________________________________________________\n",
      "activation_10 (Activation)      (None, 56, 56, 256)  0           add_3[0][0]                      \n",
      "__________________________________________________________________________________________________\n",
      "res3a_branch2a (Conv2D)         (None, 28, 28, 128)  32896       activation_10[0][0]              \n",
      "__________________________________________________________________________________________________\n",
      "bn3a_branch2a (BatchNormalizati (None, 28, 28, 128)  512         res3a_branch2a[0][0]             \n",
      "__________________________________________________________________________________________________\n",
      "activation_11 (Activation)      (None, 28, 28, 128)  0           bn3a_branch2a[0][0]              \n",
      "__________________________________________________________________________________________________\n",
      "res3a_branch2b (Conv2D)         (None, 28, 28, 128)  147584      activation_11[0][0]              \n",
      "__________________________________________________________________________________________________\n",
      "bn3a_branch2b (BatchNormalizati (None, 28, 28, 128)  512         res3a_branch2b[0][0]             \n",
      "__________________________________________________________________________________________________\n",
      "activation_12 (Activation)      (None, 28, 28, 128)  0           bn3a_branch2b[0][0]              \n",
      "__________________________________________________________________________________________________\n",
      "res3a_branch2c (Conv2D)         (None, 28, 28, 512)  66048       activation_12[0][0]              \n",
      "__________________________________________________________________________________________________\n",
      "res3a_branch1 (Conv2D)          (None, 28, 28, 512)  131584      activation_10[0][0]              \n",
      "__________________________________________________________________________________________________\n",
      "bn3a_branch2c (BatchNormalizati (None, 28, 28, 512)  2048        res3a_branch2c[0][0]             \n",
      "__________________________________________________________________________________________________\n",
      "bn3a_branch1 (BatchNormalizatio (None, 28, 28, 512)  2048        res3a_branch1[0][0]              \n",
      "__________________________________________________________________________________________________\n",
      "add_4 (Add)                     (None, 28, 28, 512)  0           bn3a_branch2c[0][0]              \n",
      "                                                                 bn3a_branch1[0][0]               \n",
      "__________________________________________________________________________________________________\n",
      "activation_13 (Activation)      (None, 28, 28, 512)  0           add_4[0][0]                      \n",
      "__________________________________________________________________________________________________\n",
      "res3b_branch2a (Conv2D)         (None, 28, 28, 128)  65664       activation_13[0][0]              \n",
      "__________________________________________________________________________________________________\n",
      "bn3b_branch2a (BatchNormalizati (None, 28, 28, 128)  512         res3b_branch2a[0][0]             \n",
      "__________________________________________________________________________________________________\n",
      "activation_14 (Activation)      (None, 28, 28, 128)  0           bn3b_branch2a[0][0]              \n",
      "__________________________________________________________________________________________________\n",
      "res3b_branch2b (Conv2D)         (None, 28, 28, 128)  147584      activation_14[0][0]              \n",
      "__________________________________________________________________________________________________\n",
      "bn3b_branch2b (BatchNormalizati (None, 28, 28, 128)  512         res3b_branch2b[0][0]             \n",
      "__________________________________________________________________________________________________\n",
      "activation_15 (Activation)      (None, 28, 28, 128)  0           bn3b_branch2b[0][0]              \n",
      "__________________________________________________________________________________________________\n",
      "res3b_branch2c (Conv2D)         (None, 28, 28, 512)  66048       activation_15[0][0]              \n",
      "__________________________________________________________________________________________________\n",
      "bn3b_branch2c (BatchNormalizati (None, 28, 28, 512)  2048        res3b_branch2c[0][0]             \n",
      "__________________________________________________________________________________________________\n",
      "add_5 (Add)                     (None, 28, 28, 512)  0           bn3b_branch2c[0][0]              \n",
      "                                                                 activation_13[0][0]              \n",
      "__________________________________________________________________________________________________\n",
      "activation_16 (Activation)      (None, 28, 28, 512)  0           add_5[0][0]                      \n",
      "__________________________________________________________________________________________________\n",
      "res3c_branch2a (Conv2D)         (None, 28, 28, 128)  65664       activation_16[0][0]              \n",
      "__________________________________________________________________________________________________\n",
      "bn3c_branch2a (BatchNormalizati (None, 28, 28, 128)  512         res3c_branch2a[0][0]             \n",
      "__________________________________________________________________________________________________\n",
      "activation_17 (Activation)      (None, 28, 28, 128)  0           bn3c_branch2a[0][0]              \n",
      "__________________________________________________________________________________________________\n",
      "res3c_branch2b (Conv2D)         (None, 28, 28, 128)  147584      activation_17[0][0]              \n",
      "__________________________________________________________________________________________________\n",
      "bn3c_branch2b (BatchNormalizati (None, 28, 28, 128)  512         res3c_branch2b[0][0]             \n",
      "__________________________________________________________________________________________________\n",
      "activation_18 (Activation)      (None, 28, 28, 128)  0           bn3c_branch2b[0][0]              \n",
      "__________________________________________________________________________________________________\n",
      "res3c_branch2c (Conv2D)         (None, 28, 28, 512)  66048       activation_18[0][0]              \n",
      "__________________________________________________________________________________________________\n",
      "bn3c_branch2c (BatchNormalizati (None, 28, 28, 512)  2048        res3c_branch2c[0][0]             \n",
      "__________________________________________________________________________________________________\n",
      "add_6 (Add)                     (None, 28, 28, 512)  0           bn3c_branch2c[0][0]              \n",
      "                                                                 activation_16[0][0]              \n",
      "__________________________________________________________________________________________________\n",
      "activation_19 (Activation)      (None, 28, 28, 512)  0           add_6[0][0]                      \n",
      "__________________________________________________________________________________________________\n",
      "res3d_branch2a (Conv2D)         (None, 28, 28, 128)  65664       activation_19[0][0]              \n",
      "__________________________________________________________________________________________________\n",
      "bn3d_branch2a (BatchNormalizati (None, 28, 28, 128)  512         res3d_branch2a[0][0]             \n",
      "__________________________________________________________________________________________________\n",
      "activation_20 (Activation)      (None, 28, 28, 128)  0           bn3d_branch2a[0][0]              \n",
      "__________________________________________________________________________________________________\n",
      "res3d_branch2b (Conv2D)         (None, 28, 28, 128)  147584      activation_20[0][0]              \n",
      "__________________________________________________________________________________________________\n",
      "bn3d_branch2b (BatchNormalizati (None, 28, 28, 128)  512         res3d_branch2b[0][0]             \n",
      "__________________________________________________________________________________________________\n",
      "activation_21 (Activation)      (None, 28, 28, 128)  0           bn3d_branch2b[0][0]              \n",
      "__________________________________________________________________________________________________\n",
      "res3d_branch2c (Conv2D)         (None, 28, 28, 512)  66048       activation_21[0][0]              \n",
      "__________________________________________________________________________________________________\n",
      "bn3d_branch2c (BatchNormalizati (None, 28, 28, 512)  2048        res3d_branch2c[0][0]             \n",
      "__________________________________________________________________________________________________\n",
      "add_7 (Add)                     (None, 28, 28, 512)  0           bn3d_branch2c[0][0]              \n",
      "                                                                 activation_19[0][0]              \n",
      "__________________________________________________________________________________________________\n",
      "activation_22 (Activation)      (None, 28, 28, 512)  0           add_7[0][0]                      \n",
      "__________________________________________________________________________________________________\n",
      "res4a_branch2a (Conv2D)         (None, 14, 14, 256)  131328      activation_22[0][0]              \n",
      "__________________________________________________________________________________________________\n",
      "bn4a_branch2a (BatchNormalizati (None, 14, 14, 256)  1024        res4a_branch2a[0][0]             \n",
      "__________________________________________________________________________________________________\n",
      "activation_23 (Activation)      (None, 14, 14, 256)  0           bn4a_branch2a[0][0]              \n",
      "__________________________________________________________________________________________________\n",
      "res4a_branch2b (Conv2D)         (None, 14, 14, 256)  590080      activation_23[0][0]              \n",
      "__________________________________________________________________________________________________\n",
      "bn4a_branch2b (BatchNormalizati (None, 14, 14, 256)  1024        res4a_branch2b[0][0]             \n",
      "__________________________________________________________________________________________________\n",
      "activation_24 (Activation)      (None, 14, 14, 256)  0           bn4a_branch2b[0][0]              \n",
      "__________________________________________________________________________________________________\n",
      "res4a_branch2c (Conv2D)         (None, 14, 14, 1024) 263168      activation_24[0][0]              \n",
      "__________________________________________________________________________________________________\n",
      "res4a_branch1 (Conv2D)          (None, 14, 14, 1024) 525312      activation_22[0][0]              \n",
      "__________________________________________________________________________________________________\n",
      "bn4a_branch2c (BatchNormalizati (None, 14, 14, 1024) 4096        res4a_branch2c[0][0]             \n",
      "__________________________________________________________________________________________________\n",
      "bn4a_branch1 (BatchNormalizatio (None, 14, 14, 1024) 4096        res4a_branch1[0][0]              \n",
      "__________________________________________________________________________________________________\n",
      "add_8 (Add)                     (None, 14, 14, 1024) 0           bn4a_branch2c[0][0]              \n",
      "                                                                 bn4a_branch1[0][0]               \n",
      "__________________________________________________________________________________________________\n",
      "activation_25 (Activation)      (None, 14, 14, 1024) 0           add_8[0][0]                      \n",
      "__________________________________________________________________________________________________\n",
      "res4b_branch2a (Conv2D)         (None, 14, 14, 256)  262400      activation_25[0][0]              \n",
      "__________________________________________________________________________________________________\n",
      "bn4b_branch2a (BatchNormalizati (None, 14, 14, 256)  1024        res4b_branch2a[0][0]             \n",
      "__________________________________________________________________________________________________\n",
      "activation_26 (Activation)      (None, 14, 14, 256)  0           bn4b_branch2a[0][0]              \n",
      "__________________________________________________________________________________________________\n",
      "res4b_branch2b (Conv2D)         (None, 14, 14, 256)  590080      activation_26[0][0]              \n",
      "__________________________________________________________________________________________________\n",
      "bn4b_branch2b (BatchNormalizati (None, 14, 14, 256)  1024        res4b_branch2b[0][0]             \n",
      "__________________________________________________________________________________________________\n",
      "activation_27 (Activation)      (None, 14, 14, 256)  0           bn4b_branch2b[0][0]              \n",
      "__________________________________________________________________________________________________\n",
      "res4b_branch2c (Conv2D)         (None, 14, 14, 1024) 263168      activation_27[0][0]              \n",
      "__________________________________________________________________________________________________\n",
      "bn4b_branch2c (BatchNormalizati (None, 14, 14, 1024) 4096        res4b_branch2c[0][0]             \n",
      "__________________________________________________________________________________________________\n",
      "add_9 (Add)                     (None, 14, 14, 1024) 0           bn4b_branch2c[0][0]              \n",
      "                                                                 activation_25[0][0]              \n",
      "__________________________________________________________________________________________________\n",
      "activation_28 (Activation)      (None, 14, 14, 1024) 0           add_9[0][0]                      \n",
      "__________________________________________________________________________________________________\n",
      "res4c_branch2a (Conv2D)         (None, 14, 14, 256)  262400      activation_28[0][0]              \n",
      "__________________________________________________________________________________________________\n",
      "bn4c_branch2a (BatchNormalizati (None, 14, 14, 256)  1024        res4c_branch2a[0][0]             \n",
      "__________________________________________________________________________________________________\n",
      "activation_29 (Activation)      (None, 14, 14, 256)  0           bn4c_branch2a[0][0]              \n",
      "__________________________________________________________________________________________________\n",
      "res4c_branch2b (Conv2D)         (None, 14, 14, 256)  590080      activation_29[0][0]              \n",
      "__________________________________________________________________________________________________\n",
      "bn4c_branch2b (BatchNormalizati (None, 14, 14, 256)  1024        res4c_branch2b[0][0]             \n",
      "__________________________________________________________________________________________________\n",
      "activation_30 (Activation)      (None, 14, 14, 256)  0           bn4c_branch2b[0][0]              \n",
      "__________________________________________________________________________________________________\n",
      "res4c_branch2c (Conv2D)         (None, 14, 14, 1024) 263168      activation_30[0][0]              \n",
      "__________________________________________________________________________________________________\n",
      "bn4c_branch2c (BatchNormalizati (None, 14, 14, 1024) 4096        res4c_branch2c[0][0]             \n",
      "__________________________________________________________________________________________________\n",
      "add_10 (Add)                    (None, 14, 14, 1024) 0           bn4c_branch2c[0][0]              \n",
      "                                                                 activation_28[0][0]              \n",
      "__________________________________________________________________________________________________\n",
      "activation_31 (Activation)      (None, 14, 14, 1024) 0           add_10[0][0]                     \n",
      "__________________________________________________________________________________________________\n",
      "res4d_branch2a (Conv2D)         (None, 14, 14, 256)  262400      activation_31[0][0]              \n",
      "__________________________________________________________________________________________________\n",
      "bn4d_branch2a (BatchNormalizati (None, 14, 14, 256)  1024        res4d_branch2a[0][0]             \n",
      "__________________________________________________________________________________________________\n",
      "activation_32 (Activation)      (None, 14, 14, 256)  0           bn4d_branch2a[0][0]              \n",
      "__________________________________________________________________________________________________\n",
      "res4d_branch2b (Conv2D)         (None, 14, 14, 256)  590080      activation_32[0][0]              \n",
      "__________________________________________________________________________________________________\n",
      "bn4d_branch2b (BatchNormalizati (None, 14, 14, 256)  1024        res4d_branch2b[0][0]             \n",
      "__________________________________________________________________________________________________\n",
      "activation_33 (Activation)      (None, 14, 14, 256)  0           bn4d_branch2b[0][0]              \n",
      "__________________________________________________________________________________________________\n",
      "res4d_branch2c (Conv2D)         (None, 14, 14, 1024) 263168      activation_33[0][0]              \n",
      "__________________________________________________________________________________________________\n",
      "bn4d_branch2c (BatchNormalizati (None, 14, 14, 1024) 4096        res4d_branch2c[0][0]             \n",
      "__________________________________________________________________________________________________\n",
      "add_11 (Add)                    (None, 14, 14, 1024) 0           bn4d_branch2c[0][0]              \n",
      "                                                                 activation_31[0][0]              \n",
      "__________________________________________________________________________________________________\n",
      "activation_34 (Activation)      (None, 14, 14, 1024) 0           add_11[0][0]                     \n",
      "__________________________________________________________________________________________________\n",
      "res4e_branch2a (Conv2D)         (None, 14, 14, 256)  262400      activation_34[0][0]              \n",
      "__________________________________________________________________________________________________\n",
      "bn4e_branch2a (BatchNormalizati (None, 14, 14, 256)  1024        res4e_branch2a[0][0]             \n",
      "__________________________________________________________________________________________________\n",
      "activation_35 (Activation)      (None, 14, 14, 256)  0           bn4e_branch2a[0][0]              \n",
      "__________________________________________________________________________________________________\n",
      "res4e_branch2b (Conv2D)         (None, 14, 14, 256)  590080      activation_35[0][0]              \n",
      "__________________________________________________________________________________________________\n",
      "bn4e_branch2b (BatchNormalizati (None, 14, 14, 256)  1024        res4e_branch2b[0][0]             \n",
      "__________________________________________________________________________________________________\n",
      "activation_36 (Activation)      (None, 14, 14, 256)  0           bn4e_branch2b[0][0]              \n",
      "__________________________________________________________________________________________________\n",
      "res4e_branch2c (Conv2D)         (None, 14, 14, 1024) 263168      activation_36[0][0]              \n",
      "__________________________________________________________________________________________________\n",
      "bn4e_branch2c (BatchNormalizati (None, 14, 14, 1024) 4096        res4e_branch2c[0][0]             \n",
      "__________________________________________________________________________________________________\n",
      "add_12 (Add)                    (None, 14, 14, 1024) 0           bn4e_branch2c[0][0]              \n",
      "                                                                 activation_34[0][0]              \n",
      "__________________________________________________________________________________________________\n",
      "activation_37 (Activation)      (None, 14, 14, 1024) 0           add_12[0][0]                     \n",
      "__________________________________________________________________________________________________\n",
      "res4f_branch2a (Conv2D)         (None, 14, 14, 256)  262400      activation_37[0][0]              \n",
      "__________________________________________________________________________________________________\n",
      "bn4f_branch2a (BatchNormalizati (None, 14, 14, 256)  1024        res4f_branch2a[0][0]             \n",
      "__________________________________________________________________________________________________\n",
      "activation_38 (Activation)      (None, 14, 14, 256)  0           bn4f_branch2a[0][0]              \n",
      "__________________________________________________________________________________________________\n",
      "res4f_branch2b (Conv2D)         (None, 14, 14, 256)  590080      activation_38[0][0]              \n",
      "__________________________________________________________________________________________________\n",
      "bn4f_branch2b (BatchNormalizati (None, 14, 14, 256)  1024        res4f_branch2b[0][0]             \n",
      "__________________________________________________________________________________________________\n",
      "activation_39 (Activation)      (None, 14, 14, 256)  0           bn4f_branch2b[0][0]              \n",
      "__________________________________________________________________________________________________\n",
      "res4f_branch2c (Conv2D)         (None, 14, 14, 1024) 263168      activation_39[0][0]              \n",
      "__________________________________________________________________________________________________\n",
      "bn4f_branch2c (BatchNormalizati (None, 14, 14, 1024) 4096        res4f_branch2c[0][0]             \n",
      "__________________________________________________________________________________________________\n",
      "add_13 (Add)                    (None, 14, 14, 1024) 0           bn4f_branch2c[0][0]              \n",
      "                                                                 activation_37[0][0]              \n",
      "__________________________________________________________________________________________________\n",
      "activation_40 (Activation)      (None, 14, 14, 1024) 0           add_13[0][0]                     \n",
      "__________________________________________________________________________________________________\n",
      "res5a_branch2a (Conv2D)         (None, 7, 7, 512)    524800      activation_40[0][0]              \n",
      "__________________________________________________________________________________________________\n",
      "bn5a_branch2a (BatchNormalizati (None, 7, 7, 512)    2048        res5a_branch2a[0][0]             \n",
      "__________________________________________________________________________________________________\n",
      "activation_41 (Activation)      (None, 7, 7, 512)    0           bn5a_branch2a[0][0]              \n",
      "__________________________________________________________________________________________________\n",
      "res5a_branch2b (Conv2D)         (None, 7, 7, 512)    2359808     activation_41[0][0]              \n",
      "__________________________________________________________________________________________________\n",
      "bn5a_branch2b (BatchNormalizati (None, 7, 7, 512)    2048        res5a_branch2b[0][0]             \n",
      "__________________________________________________________________________________________________\n",
      "activation_42 (Activation)      (None, 7, 7, 512)    0           bn5a_branch2b[0][0]              \n",
      "__________________________________________________________________________________________________\n",
      "res5a_branch2c (Conv2D)         (None, 7, 7, 2048)   1050624     activation_42[0][0]              \n",
      "__________________________________________________________________________________________________\n",
      "res5a_branch1 (Conv2D)          (None, 7, 7, 2048)   2099200     activation_40[0][0]              \n",
      "__________________________________________________________________________________________________\n",
      "bn5a_branch2c (BatchNormalizati (None, 7, 7, 2048)   8192        res5a_branch2c[0][0]             \n",
      "__________________________________________________________________________________________________\n",
      "bn5a_branch1 (BatchNormalizatio (None, 7, 7, 2048)   8192        res5a_branch1[0][0]              \n",
      "__________________________________________________________________________________________________\n",
      "add_14 (Add)                    (None, 7, 7, 2048)   0           bn5a_branch2c[0][0]              \n",
      "                                                                 bn5a_branch1[0][0]               \n",
      "__________________________________________________________________________________________________\n",
      "activation_43 (Activation)      (None, 7, 7, 2048)   0           add_14[0][0]                     \n",
      "__________________________________________________________________________________________________\n",
      "res5b_branch2a (Conv2D)         (None, 7, 7, 512)    1049088     activation_43[0][0]              \n",
      "__________________________________________________________________________________________________\n",
      "bn5b_branch2a (BatchNormalizati (None, 7, 7, 512)    2048        res5b_branch2a[0][0]             \n",
      "__________________________________________________________________________________________________\n",
      "activation_44 (Activation)      (None, 7, 7, 512)    0           bn5b_branch2a[0][0]              \n",
      "__________________________________________________________________________________________________\n",
      "res5b_branch2b (Conv2D)         (None, 7, 7, 512)    2359808     activation_44[0][0]              \n",
      "__________________________________________________________________________________________________\n",
      "bn5b_branch2b (BatchNormalizati (None, 7, 7, 512)    2048        res5b_branch2b[0][0]             \n",
      "__________________________________________________________________________________________________\n",
      "activation_45 (Activation)      (None, 7, 7, 512)    0           bn5b_branch2b[0][0]              \n",
      "__________________________________________________________________________________________________\n",
      "res5b_branch2c (Conv2D)         (None, 7, 7, 2048)   1050624     activation_45[0][0]              \n",
      "__________________________________________________________________________________________________\n",
      "bn5b_branch2c (BatchNormalizati (None, 7, 7, 2048)   8192        res5b_branch2c[0][0]             \n",
      "__________________________________________________________________________________________________\n",
      "add_15 (Add)                    (None, 7, 7, 2048)   0           bn5b_branch2c[0][0]              \n",
      "                                                                 activation_43[0][0]              \n",
      "__________________________________________________________________________________________________\n",
      "activation_46 (Activation)      (None, 7, 7, 2048)   0           add_15[0][0]                     \n",
      "__________________________________________________________________________________________________\n",
      "res5c_branch2a (Conv2D)         (None, 7, 7, 512)    1049088     activation_46[0][0]              \n",
      "__________________________________________________________________________________________________\n",
      "bn5c_branch2a (BatchNormalizati (None, 7, 7, 512)    2048        res5c_branch2a[0][0]             \n",
      "__________________________________________________________________________________________________\n",
      "activation_47 (Activation)      (None, 7, 7, 512)    0           bn5c_branch2a[0][0]              \n",
      "__________________________________________________________________________________________________\n",
      "res5c_branch2b (Conv2D)         (None, 7, 7, 512)    2359808     activation_47[0][0]              \n",
      "__________________________________________________________________________________________________\n",
      "bn5c_branch2b (BatchNormalizati (None, 7, 7, 512)    2048        res5c_branch2b[0][0]             \n",
      "__________________________________________________________________________________________________\n",
      "activation_48 (Activation)      (None, 7, 7, 512)    0           bn5c_branch2b[0][0]              \n",
      "__________________________________________________________________________________________________\n",
      "res5c_branch2c (Conv2D)         (None, 7, 7, 2048)   1050624     activation_48[0][0]              \n",
      "__________________________________________________________________________________________________\n",
      "bn5c_branch2c (BatchNormalizati (None, 7, 7, 2048)   8192        res5c_branch2c[0][0]             \n",
      "__________________________________________________________________________________________________\n",
      "add_16 (Add)                    (None, 7, 7, 2048)   0           bn5c_branch2c[0][0]              \n",
      "                                                                 activation_46[0][0]              \n",
      "__________________________________________________________________________________________________\n",
      "activation_49 (Activation)      (None, 7, 7, 2048)   0           add_16[0][0]                     \n",
      "__________________________________________________________________________________________________\n",
      "avg_pool (GlobalAveragePooling2 (None, 2048)         0           activation_49[0][0]              \n",
      "__________________________________________________________________________________________________\n",
      "fc1000 (Dense)                  (None, 1000)         2049000     avg_pool[0][0]                   \n",
      "==================================================================================================\n",
      "Total params: 25,636,712\n",
      "Trainable params: 25,583,592\n",
      "Non-trainable params: 53,120\n",
      "__________________________________________________________________________________________________\n"
     ]
    }
   ],
   "source": [
    "resnet_model.summary()"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 10,
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "Predicted: [('n01871265', 'tusker', 0.48542652), ('n02504013', 'Indian_elephant', 0.3432938), ('n02504458', 'African_elephant', 0.17125048)]\n"
     ]
    }
   ],
   "source": [
    "from keras.preprocessing import image\n",
    "import numpy as np\n",
    "img = image.load_img('elephant.jpg', target_size=(224, 224))\n",
    "x = image.img_to_array(img)\n",
    "x = np.expand_dims(x, axis=0)\n",
    "x = preprocess_input(x)\n",
    "preds = resnet_model.predict(x)\n",
    "print('Predicted:', decode_predictions(preds, top=3)[0])\n"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 11,
   "metadata": {},
   "outputs": [],
   "source": [
    "# We should preprocess the images the same way resnet images were preprocessed\n",
    "x_train_preprocessed = preprocess_input(x_train)\n",
    "x_test_preprocessed = preprocess_input(x_test)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 12,
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "__________________________________________________________________________________________________\n",
      "Layer (type)                    Output Shape         Param #     Connected to                     \n",
      "==================================================================================================\n",
      "input_1 (InputLayer)            (None, 224, 224, 3)  0                                            \n",
      "__________________________________________________________________________________________________\n",
      "conv1_pad (ZeroPadding2D)       (None, 230, 230, 3)  0           input_1[0][0]                    \n",
      "__________________________________________________________________________________________________\n",
      "conv1 (Conv2D)                  (None, 112, 112, 64) 9472        conv1_pad[0][0]                  \n",
      "__________________________________________________________________________________________________\n",
      "bn_conv1 (BatchNormalization)   (None, 112, 112, 64) 256         conv1[0][0]                      \n",
      "__________________________________________________________________________________________________\n",
      "activation_1 (Activation)       (None, 112, 112, 64) 0           bn_conv1[0][0]                   \n",
      "__________________________________________________________________________________________________\n",
      "pool1_pad (ZeroPadding2D)       (None, 114, 114, 64) 0           activation_1[0][0]               \n",
      "__________________________________________________________________________________________________\n",
      "max_pooling2d_1 (MaxPooling2D)  (None, 56, 56, 64)   0           pool1_pad[0][0]                  \n",
      "__________________________________________________________________________________________________\n",
      "res2a_branch2a (Conv2D)         (None, 56, 56, 64)   4160        max_pooling2d_1[0][0]            \n",
      "__________________________________________________________________________________________________\n",
      "bn2a_branch2a (BatchNormalizati (None, 56, 56, 64)   256         res2a_branch2a[0][0]             \n",
      "__________________________________________________________________________________________________\n",
      "activation_2 (Activation)       (None, 56, 56, 64)   0           bn2a_branch2a[0][0]              \n",
      "__________________________________________________________________________________________________\n",
      "res2a_branch2b (Conv2D)         (None, 56, 56, 64)   36928       activation_2[0][0]               \n",
      "__________________________________________________________________________________________________\n",
      "bn2a_branch2b (BatchNormalizati (None, 56, 56, 64)   256         res2a_branch2b[0][0]             \n",
      "__________________________________________________________________________________________________\n",
      "activation_3 (Activation)       (None, 56, 56, 64)   0           bn2a_branch2b[0][0]              \n",
      "__________________________________________________________________________________________________\n",
      "res2a_branch2c (Conv2D)         (None, 56, 56, 256)  16640       activation_3[0][0]               \n",
      "__________________________________________________________________________________________________\n",
      "res2a_branch1 (Conv2D)          (None, 56, 56, 256)  16640       max_pooling2d_1[0][0]            \n",
      "__________________________________________________________________________________________________\n",
      "bn2a_branch2c (BatchNormalizati (None, 56, 56, 256)  1024        res2a_branch2c[0][0]             \n",
      "__________________________________________________________________________________________________\n",
      "bn2a_branch1 (BatchNormalizatio (None, 56, 56, 256)  1024        res2a_branch1[0][0]              \n",
      "__________________________________________________________________________________________________\n",
      "add_1 (Add)                     (None, 56, 56, 256)  0           bn2a_branch2c[0][0]              \n",
      "                                                                 bn2a_branch1[0][0]               \n",
      "__________________________________________________________________________________________________\n",
      "activation_4 (Activation)       (None, 56, 56, 256)  0           add_1[0][0]                      \n",
      "__________________________________________________________________________________________________\n",
      "res2b_branch2a (Conv2D)         (None, 56, 56, 64)   16448       activation_4[0][0]               \n",
      "__________________________________________________________________________________________________\n",
      "bn2b_branch2a (BatchNormalizati (None, 56, 56, 64)   256         res2b_branch2a[0][0]             \n",
      "__________________________________________________________________________________________________\n",
      "activation_5 (Activation)       (None, 56, 56, 64)   0           bn2b_branch2a[0][0]              \n",
      "__________________________________________________________________________________________________\n",
      "res2b_branch2b (Conv2D)         (None, 56, 56, 64)   36928       activation_5[0][0]               \n",
      "__________________________________________________________________________________________________\n",
      "bn2b_branch2b (BatchNormalizati (None, 56, 56, 64)   256         res2b_branch2b[0][0]             \n",
      "__________________________________________________________________________________________________\n",
      "activation_6 (Activation)       (None, 56, 56, 64)   0           bn2b_branch2b[0][0]              \n",
      "__________________________________________________________________________________________________\n",
      "res2b_branch2c (Conv2D)         (None, 56, 56, 256)  16640       activation_6[0][0]               \n",
      "__________________________________________________________________________________________________\n",
      "bn2b_branch2c (BatchNormalizati (None, 56, 56, 256)  1024        res2b_branch2c[0][0]             \n",
      "__________________________________________________________________________________________________\n",
      "add_2 (Add)                     (None, 56, 56, 256)  0           bn2b_branch2c[0][0]              \n",
      "                                                                 activation_4[0][0]               \n",
      "__________________________________________________________________________________________________\n",
      "activation_7 (Activation)       (None, 56, 56, 256)  0           add_2[0][0]                      \n",
      "__________________________________________________________________________________________________\n",
      "res2c_branch2a (Conv2D)         (None, 56, 56, 64)   16448       activation_7[0][0]               \n",
      "__________________________________________________________________________________________________\n",
      "bn2c_branch2a (BatchNormalizati (None, 56, 56, 64)   256         res2c_branch2a[0][0]             \n",
      "__________________________________________________________________________________________________\n",
      "activation_8 (Activation)       (None, 56, 56, 64)   0           bn2c_branch2a[0][0]              \n",
      "__________________________________________________________________________________________________\n",
      "res2c_branch2b (Conv2D)         (None, 56, 56, 64)   36928       activation_8[0][0]               \n",
      "__________________________________________________________________________________________________\n",
      "bn2c_branch2b (BatchNormalizati (None, 56, 56, 64)   256         res2c_branch2b[0][0]             \n",
      "__________________________________________________________________________________________________\n",
      "activation_9 (Activation)       (None, 56, 56, 64)   0           bn2c_branch2b[0][0]              \n",
      "__________________________________________________________________________________________________\n",
      "res2c_branch2c (Conv2D)         (None, 56, 56, 256)  16640       activation_9[0][0]               \n",
      "__________________________________________________________________________________________________\n",
      "bn2c_branch2c (BatchNormalizati (None, 56, 56, 256)  1024        res2c_branch2c[0][0]             \n",
      "__________________________________________________________________________________________________\n",
      "add_3 (Add)                     (None, 56, 56, 256)  0           bn2c_branch2c[0][0]              \n",
      "                                                                 activation_7[0][0]               \n",
      "__________________________________________________________________________________________________\n",
      "activation_10 (Activation)      (None, 56, 56, 256)  0           add_3[0][0]                      \n",
      "__________________________________________________________________________________________________\n",
      "res3a_branch2a (Conv2D)         (None, 28, 28, 128)  32896       activation_10[0][0]              \n",
      "__________________________________________________________________________________________________\n",
      "bn3a_branch2a (BatchNormalizati (None, 28, 28, 128)  512         res3a_branch2a[0][0]             \n",
      "__________________________________________________________________________________________________\n",
      "activation_11 (Activation)      (None, 28, 28, 128)  0           bn3a_branch2a[0][0]              \n",
      "__________________________________________________________________________________________________\n",
      "res3a_branch2b (Conv2D)         (None, 28, 28, 128)  147584      activation_11[0][0]              \n",
      "__________________________________________________________________________________________________\n",
      "bn3a_branch2b (BatchNormalizati (None, 28, 28, 128)  512         res3a_branch2b[0][0]             \n",
      "__________________________________________________________________________________________________\n",
      "activation_12 (Activation)      (None, 28, 28, 128)  0           bn3a_branch2b[0][0]              \n",
      "__________________________________________________________________________________________________\n",
      "res3a_branch2c (Conv2D)         (None, 28, 28, 512)  66048       activation_12[0][0]              \n",
      "__________________________________________________________________________________________________\n",
      "res3a_branch1 (Conv2D)          (None, 28, 28, 512)  131584      activation_10[0][0]              \n",
      "__________________________________________________________________________________________________\n",
      "bn3a_branch2c (BatchNormalizati (None, 28, 28, 512)  2048        res3a_branch2c[0][0]             \n",
      "__________________________________________________________________________________________________\n",
      "bn3a_branch1 (BatchNormalizatio (None, 28, 28, 512)  2048        res3a_branch1[0][0]              \n",
      "__________________________________________________________________________________________________\n",
      "add_4 (Add)                     (None, 28, 28, 512)  0           bn3a_branch2c[0][0]              \n",
      "                                                                 bn3a_branch1[0][0]               \n",
      "__________________________________________________________________________________________________\n",
      "activation_13 (Activation)      (None, 28, 28, 512)  0           add_4[0][0]                      \n",
      "__________________________________________________________________________________________________\n",
      "res3b_branch2a (Conv2D)         (None, 28, 28, 128)  65664       activation_13[0][0]              \n",
      "__________________________________________________________________________________________________\n",
      "bn3b_branch2a (BatchNormalizati (None, 28, 28, 128)  512         res3b_branch2a[0][0]             \n",
      "__________________________________________________________________________________________________\n",
      "activation_14 (Activation)      (None, 28, 28, 128)  0           bn3b_branch2a[0][0]              \n",
      "__________________________________________________________________________________________________\n",
      "res3b_branch2b (Conv2D)         (None, 28, 28, 128)  147584      activation_14[0][0]              \n",
      "__________________________________________________________________________________________________\n",
      "bn3b_branch2b (BatchNormalizati (None, 28, 28, 128)  512         res3b_branch2b[0][0]             \n",
      "__________________________________________________________________________________________________\n",
      "activation_15 (Activation)      (None, 28, 28, 128)  0           bn3b_branch2b[0][0]              \n",
      "__________________________________________________________________________________________________\n",
      "res3b_branch2c (Conv2D)         (None, 28, 28, 512)  66048       activation_15[0][0]              \n",
      "__________________________________________________________________________________________________\n",
      "bn3b_branch2c (BatchNormalizati (None, 28, 28, 512)  2048        res3b_branch2c[0][0]             \n",
      "__________________________________________________________________________________________________\n",
      "add_5 (Add)                     (None, 28, 28, 512)  0           bn3b_branch2c[0][0]              \n",
      "                                                                 activation_13[0][0]              \n",
      "__________________________________________________________________________________________________\n",
      "activation_16 (Activation)      (None, 28, 28, 512)  0           add_5[0][0]                      \n",
      "__________________________________________________________________________________________________\n",
      "res3c_branch2a (Conv2D)         (None, 28, 28, 128)  65664       activation_16[0][0]              \n",
      "__________________________________________________________________________________________________\n",
      "bn3c_branch2a (BatchNormalizati (None, 28, 28, 128)  512         res3c_branch2a[0][0]             \n",
      "__________________________________________________________________________________________________\n",
      "activation_17 (Activation)      (None, 28, 28, 128)  0           bn3c_branch2a[0][0]              \n",
      "__________________________________________________________________________________________________\n",
      "res3c_branch2b (Conv2D)         (None, 28, 28, 128)  147584      activation_17[0][0]              \n",
      "__________________________________________________________________________________________________\n",
      "bn3c_branch2b (BatchNormalizati (None, 28, 28, 128)  512         res3c_branch2b[0][0]             \n",
      "__________________________________________________________________________________________________\n",
      "activation_18 (Activation)      (None, 28, 28, 128)  0           bn3c_branch2b[0][0]              \n",
      "__________________________________________________________________________________________________\n",
      "res3c_branch2c (Conv2D)         (None, 28, 28, 512)  66048       activation_18[0][0]              \n",
      "__________________________________________________________________________________________________\n",
      "bn3c_branch2c (BatchNormalizati (None, 28, 28, 512)  2048        res3c_branch2c[0][0]             \n",
      "__________________________________________________________________________________________________\n",
      "add_6 (Add)                     (None, 28, 28, 512)  0           bn3c_branch2c[0][0]              \n",
      "                                                                 activation_16[0][0]              \n",
      "__________________________________________________________________________________________________\n",
      "activation_19 (Activation)      (None, 28, 28, 512)  0           add_6[0][0]                      \n",
      "__________________________________________________________________________________________________\n",
      "res3d_branch2a (Conv2D)         (None, 28, 28, 128)  65664       activation_19[0][0]              \n",
      "__________________________________________________________________________________________________\n",
      "bn3d_branch2a (BatchNormalizati (None, 28, 28, 128)  512         res3d_branch2a[0][0]             \n",
      "__________________________________________________________________________________________________\n",
      "activation_20 (Activation)      (None, 28, 28, 128)  0           bn3d_branch2a[0][0]              \n",
      "__________________________________________________________________________________________________\n",
      "res3d_branch2b (Conv2D)         (None, 28, 28, 128)  147584      activation_20[0][0]              \n",
      "__________________________________________________________________________________________________\n",
      "bn3d_branch2b (BatchNormalizati (None, 28, 28, 128)  512         res3d_branch2b[0][0]             \n",
      "__________________________________________________________________________________________________\n",
      "activation_21 (Activation)      (None, 28, 28, 128)  0           bn3d_branch2b[0][0]              \n",
      "__________________________________________________________________________________________________\n",
      "res3d_branch2c (Conv2D)         (None, 28, 28, 512)  66048       activation_21[0][0]              \n",
      "__________________________________________________________________________________________________\n",
      "bn3d_branch2c (BatchNormalizati (None, 28, 28, 512)  2048        res3d_branch2c[0][0]             \n",
      "__________________________________________________________________________________________________\n",
      "add_7 (Add)                     (None, 28, 28, 512)  0           bn3d_branch2c[0][0]              \n",
      "                                                                 activation_19[0][0]              \n",
      "__________________________________________________________________________________________________\n",
      "activation_22 (Activation)      (None, 28, 28, 512)  0           add_7[0][0]                      \n",
      "__________________________________________________________________________________________________\n",
      "res4a_branch2a (Conv2D)         (None, 14, 14, 256)  131328      activation_22[0][0]              \n",
      "__________________________________________________________________________________________________\n",
      "bn4a_branch2a (BatchNormalizati (None, 14, 14, 256)  1024        res4a_branch2a[0][0]             \n",
      "__________________________________________________________________________________________________\n",
      "activation_23 (Activation)      (None, 14, 14, 256)  0           bn4a_branch2a[0][0]              \n",
      "__________________________________________________________________________________________________\n",
      "res4a_branch2b (Conv2D)         (None, 14, 14, 256)  590080      activation_23[0][0]              \n",
      "__________________________________________________________________________________________________\n",
      "bn4a_branch2b (BatchNormalizati (None, 14, 14, 256)  1024        res4a_branch2b[0][0]             \n",
      "__________________________________________________________________________________________________\n",
      "activation_24 (Activation)      (None, 14, 14, 256)  0           bn4a_branch2b[0][0]              \n",
      "__________________________________________________________________________________________________\n",
      "res4a_branch2c (Conv2D)         (None, 14, 14, 1024) 263168      activation_24[0][0]              \n",
      "__________________________________________________________________________________________________\n",
      "res4a_branch1 (Conv2D)          (None, 14, 14, 1024) 525312      activation_22[0][0]              \n",
      "__________________________________________________________________________________________________\n",
      "bn4a_branch2c (BatchNormalizati (None, 14, 14, 1024) 4096        res4a_branch2c[0][0]             \n",
      "__________________________________________________________________________________________________\n",
      "bn4a_branch1 (BatchNormalizatio (None, 14, 14, 1024) 4096        res4a_branch1[0][0]              \n",
      "__________________________________________________________________________________________________\n",
      "add_8 (Add)                     (None, 14, 14, 1024) 0           bn4a_branch2c[0][0]              \n",
      "                                                                 bn4a_branch1[0][0]               \n",
      "__________________________________________________________________________________________________\n",
      "activation_25 (Activation)      (None, 14, 14, 1024) 0           add_8[0][0]                      \n",
      "__________________________________________________________________________________________________\n",
      "res4b_branch2a (Conv2D)         (None, 14, 14, 256)  262400      activation_25[0][0]              \n",
      "__________________________________________________________________________________________________\n",
      "bn4b_branch2a (BatchNormalizati (None, 14, 14, 256)  1024        res4b_branch2a[0][0]             \n",
      "__________________________________________________________________________________________________\n",
      "activation_26 (Activation)      (None, 14, 14, 256)  0           bn4b_branch2a[0][0]              \n",
      "__________________________________________________________________________________________________\n",
      "res4b_branch2b (Conv2D)         (None, 14, 14, 256)  590080      activation_26[0][0]              \n",
      "__________________________________________________________________________________________________\n",
      "bn4b_branch2b (BatchNormalizati (None, 14, 14, 256)  1024        res4b_branch2b[0][0]             \n",
      "__________________________________________________________________________________________________\n",
      "activation_27 (Activation)      (None, 14, 14, 256)  0           bn4b_branch2b[0][0]              \n",
      "__________________________________________________________________________________________________\n",
      "res4b_branch2c (Conv2D)         (None, 14, 14, 1024) 263168      activation_27[0][0]              \n",
      "__________________________________________________________________________________________________\n",
      "bn4b_branch2c (BatchNormalizati (None, 14, 14, 1024) 4096        res4b_branch2c[0][0]             \n",
      "__________________________________________________________________________________________________\n",
      "add_9 (Add)                     (None, 14, 14, 1024) 0           bn4b_branch2c[0][0]              \n",
      "                                                                 activation_25[0][0]              \n",
      "__________________________________________________________________________________________________\n",
      "activation_28 (Activation)      (None, 14, 14, 1024) 0           add_9[0][0]                      \n",
      "__________________________________________________________________________________________________\n",
      "res4c_branch2a (Conv2D)         (None, 14, 14, 256)  262400      activation_28[0][0]              \n",
      "__________________________________________________________________________________________________\n",
      "bn4c_branch2a (BatchNormalizati (None, 14, 14, 256)  1024        res4c_branch2a[0][0]             \n",
      "__________________________________________________________________________________________________\n",
      "activation_29 (Activation)      (None, 14, 14, 256)  0           bn4c_branch2a[0][0]              \n",
      "__________________________________________________________________________________________________\n",
      "res4c_branch2b (Conv2D)         (None, 14, 14, 256)  590080      activation_29[0][0]              \n",
      "__________________________________________________________________________________________________\n",
      "bn4c_branch2b (BatchNormalizati (None, 14, 14, 256)  1024        res4c_branch2b[0][0]             \n",
      "__________________________________________________________________________________________________\n",
      "activation_30 (Activation)      (None, 14, 14, 256)  0           bn4c_branch2b[0][0]              \n",
      "__________________________________________________________________________________________________\n",
      "res4c_branch2c (Conv2D)         (None, 14, 14, 1024) 263168      activation_30[0][0]              \n",
      "__________________________________________________________________________________________________\n",
      "bn4c_branch2c (BatchNormalizati (None, 14, 14, 1024) 4096        res4c_branch2c[0][0]             \n",
      "__________________________________________________________________________________________________\n",
      "add_10 (Add)                    (None, 14, 14, 1024) 0           bn4c_branch2c[0][0]              \n",
      "                                                                 activation_28[0][0]              \n",
      "__________________________________________________________________________________________________\n",
      "activation_31 (Activation)      (None, 14, 14, 1024) 0           add_10[0][0]                     \n",
      "__________________________________________________________________________________________________\n",
      "res4d_branch2a (Conv2D)         (None, 14, 14, 256)  262400      activation_31[0][0]              \n",
      "__________________________________________________________________________________________________\n",
      "bn4d_branch2a (BatchNormalizati (None, 14, 14, 256)  1024        res4d_branch2a[0][0]             \n",
      "__________________________________________________________________________________________________\n",
      "activation_32 (Activation)      (None, 14, 14, 256)  0           bn4d_branch2a[0][0]              \n",
      "__________________________________________________________________________________________________\n",
      "res4d_branch2b (Conv2D)         (None, 14, 14, 256)  590080      activation_32[0][0]              \n",
      "__________________________________________________________________________________________________\n",
      "bn4d_branch2b (BatchNormalizati (None, 14, 14, 256)  1024        res4d_branch2b[0][0]             \n",
      "__________________________________________________________________________________________________\n",
      "activation_33 (Activation)      (None, 14, 14, 256)  0           bn4d_branch2b[0][0]              \n",
      "__________________________________________________________________________________________________\n",
      "res4d_branch2c (Conv2D)         (None, 14, 14, 1024) 263168      activation_33[0][0]              \n",
      "__________________________________________________________________________________________________\n",
      "bn4d_branch2c (BatchNormalizati (None, 14, 14, 1024) 4096        res4d_branch2c[0][0]             \n",
      "__________________________________________________________________________________________________\n",
      "add_11 (Add)                    (None, 14, 14, 1024) 0           bn4d_branch2c[0][0]              \n",
      "                                                                 activation_31[0][0]              \n",
      "__________________________________________________________________________________________________\n",
      "activation_34 (Activation)      (None, 14, 14, 1024) 0           add_11[0][0]                     \n",
      "__________________________________________________________________________________________________\n",
      "res4e_branch2a (Conv2D)         (None, 14, 14, 256)  262400      activation_34[0][0]              \n",
      "__________________________________________________________________________________________________\n",
      "bn4e_branch2a (BatchNormalizati (None, 14, 14, 256)  1024        res4e_branch2a[0][0]             \n",
      "__________________________________________________________________________________________________\n",
      "activation_35 (Activation)      (None, 14, 14, 256)  0           bn4e_branch2a[0][0]              \n",
      "__________________________________________________________________________________________________\n",
      "res4e_branch2b (Conv2D)         (None, 14, 14, 256)  590080      activation_35[0][0]              \n",
      "__________________________________________________________________________________________________\n",
      "bn4e_branch2b (BatchNormalizati (None, 14, 14, 256)  1024        res4e_branch2b[0][0]             \n",
      "__________________________________________________________________________________________________\n",
      "activation_36 (Activation)      (None, 14, 14, 256)  0           bn4e_branch2b[0][0]              \n",
      "__________________________________________________________________________________________________\n",
      "res4e_branch2c (Conv2D)         (None, 14, 14, 1024) 263168      activation_36[0][0]              \n",
      "__________________________________________________________________________________________________\n",
      "bn4e_branch2c (BatchNormalizati (None, 14, 14, 1024) 4096        res4e_branch2c[0][0]             \n",
      "__________________________________________________________________________________________________\n",
      "add_12 (Add)                    (None, 14, 14, 1024) 0           bn4e_branch2c[0][0]              \n",
      "                                                                 activation_34[0][0]              \n",
      "__________________________________________________________________________________________________\n",
      "activation_37 (Activation)      (None, 14, 14, 1024) 0           add_12[0][0]                     \n",
      "__________________________________________________________________________________________________\n",
      "res4f_branch2a (Conv2D)         (None, 14, 14, 256)  262400      activation_37[0][0]              \n",
      "__________________________________________________________________________________________________\n",
      "bn4f_branch2a (BatchNormalizati (None, 14, 14, 256)  1024        res4f_branch2a[0][0]             \n",
      "__________________________________________________________________________________________________\n",
      "activation_38 (Activation)      (None, 14, 14, 256)  0           bn4f_branch2a[0][0]              \n",
      "__________________________________________________________________________________________________\n",
      "res4f_branch2b (Conv2D)         (None, 14, 14, 256)  590080      activation_38[0][0]              \n",
      "__________________________________________________________________________________________________\n",
      "bn4f_branch2b (BatchNormalizati (None, 14, 14, 256)  1024        res4f_branch2b[0][0]             \n",
      "__________________________________________________________________________________________________\n",
      "activation_39 (Activation)      (None, 14, 14, 256)  0           bn4f_branch2b[0][0]              \n",
      "__________________________________________________________________________________________________\n",
      "res4f_branch2c (Conv2D)         (None, 14, 14, 1024) 263168      activation_39[0][0]              \n",
      "__________________________________________________________________________________________________\n",
      "bn4f_branch2c (BatchNormalizati (None, 14, 14, 1024) 4096        res4f_branch2c[0][0]             \n",
      "__________________________________________________________________________________________________\n",
      "add_13 (Add)                    (None, 14, 14, 1024) 0           bn4f_branch2c[0][0]              \n",
      "                                                                 activation_37[0][0]              \n",
      "__________________________________________________________________________________________________\n",
      "activation_40 (Activation)      (None, 14, 14, 1024) 0           add_13[0][0]                     \n",
      "__________________________________________________________________________________________________\n",
      "res5a_branch2a (Conv2D)         (None, 7, 7, 512)    524800      activation_40[0][0]              \n",
      "__________________________________________________________________________________________________\n",
      "bn5a_branch2a (BatchNormalizati (None, 7, 7, 512)    2048        res5a_branch2a[0][0]             \n",
      "__________________________________________________________________________________________________\n",
      "activation_41 (Activation)      (None, 7, 7, 512)    0           bn5a_branch2a[0][0]              \n",
      "__________________________________________________________________________________________________\n",
      "res5a_branch2b (Conv2D)         (None, 7, 7, 512)    2359808     activation_41[0][0]              \n",
      "__________________________________________________________________________________________________\n",
      "bn5a_branch2b (BatchNormalizati (None, 7, 7, 512)    2048        res5a_branch2b[0][0]             \n",
      "__________________________________________________________________________________________________\n",
      "activation_42 (Activation)      (None, 7, 7, 512)    0           bn5a_branch2b[0][0]              \n",
      "__________________________________________________________________________________________________\n",
      "res5a_branch2c (Conv2D)         (None, 7, 7, 2048)   1050624     activation_42[0][0]              \n",
      "__________________________________________________________________________________________________\n",
      "res5a_branch1 (Conv2D)          (None, 7, 7, 2048)   2099200     activation_40[0][0]              \n",
      "__________________________________________________________________________________________________\n",
      "bn5a_branch2c (BatchNormalizati (None, 7, 7, 2048)   8192        res5a_branch2c[0][0]             \n",
      "__________________________________________________________________________________________________\n",
      "bn5a_branch1 (BatchNormalizatio (None, 7, 7, 2048)   8192        res5a_branch1[0][0]              \n",
      "__________________________________________________________________________________________________\n",
      "add_14 (Add)                    (None, 7, 7, 2048)   0           bn5a_branch2c[0][0]              \n",
      "                                                                 bn5a_branch1[0][0]               \n",
      "__________________________________________________________________________________________________\n",
      "activation_43 (Activation)      (None, 7, 7, 2048)   0           add_14[0][0]                     \n",
      "__________________________________________________________________________________________________\n",
      "res5b_branch2a (Conv2D)         (None, 7, 7, 512)    1049088     activation_43[0][0]              \n",
      "__________________________________________________________________________________________________\n",
      "bn5b_branch2a (BatchNormalizati (None, 7, 7, 512)    2048        res5b_branch2a[0][0]             \n",
      "__________________________________________________________________________________________________\n",
      "activation_44 (Activation)      (None, 7, 7, 512)    0           bn5b_branch2a[0][0]              \n",
      "__________________________________________________________________________________________________\n",
      "res5b_branch2b (Conv2D)         (None, 7, 7, 512)    2359808     activation_44[0][0]              \n",
      "__________________________________________________________________________________________________\n",
      "bn5b_branch2b (BatchNormalizati (None, 7, 7, 512)    2048        res5b_branch2b[0][0]             \n",
      "__________________________________________________________________________________________________\n",
      "activation_45 (Activation)      (None, 7, 7, 512)    0           bn5b_branch2b[0][0]              \n",
      "__________________________________________________________________________________________________\n",
      "res5b_branch2c (Conv2D)         (None, 7, 7, 2048)   1050624     activation_45[0][0]              \n",
      "__________________________________________________________________________________________________\n",
      "bn5b_branch2c (BatchNormalizati (None, 7, 7, 2048)   8192        res5b_branch2c[0][0]             \n",
      "__________________________________________________________________________________________________\n",
      "add_15 (Add)                    (None, 7, 7, 2048)   0           bn5b_branch2c[0][0]              \n",
      "                                                                 activation_43[0][0]              \n",
      "__________________________________________________________________________________________________\n",
      "activation_46 (Activation)      (None, 7, 7, 2048)   0           add_15[0][0]                     \n",
      "__________________________________________________________________________________________________\n",
      "res5c_branch2a (Conv2D)         (None, 7, 7, 512)    1049088     activation_46[0][0]              \n",
      "__________________________________________________________________________________________________\n",
      "bn5c_branch2a (BatchNormalizati (None, 7, 7, 512)    2048        res5c_branch2a[0][0]             \n",
      "__________________________________________________________________________________________________\n",
      "activation_47 (Activation)      (None, 7, 7, 512)    0           bn5c_branch2a[0][0]              \n",
      "__________________________________________________________________________________________________\n",
      "res5c_branch2b (Conv2D)         (None, 7, 7, 512)    2359808     activation_47[0][0]              \n",
      "__________________________________________________________________________________________________\n",
      "bn5c_branch2b (BatchNormalizati (None, 7, 7, 512)    2048        res5c_branch2b[0][0]             \n",
      "__________________________________________________________________________________________________\n",
      "activation_48 (Activation)      (None, 7, 7, 512)    0           bn5c_branch2b[0][0]              \n",
      "__________________________________________________________________________________________________\n",
      "res5c_branch2c (Conv2D)         (None, 7, 7, 2048)   1050624     activation_48[0][0]              \n",
      "__________________________________________________________________________________________________\n",
      "bn5c_branch2c (BatchNormalizati (None, 7, 7, 2048)   8192        res5c_branch2c[0][0]             \n",
      "__________________________________________________________________________________________________\n",
      "add_16 (Add)                    (None, 7, 7, 2048)   0           bn5c_branch2c[0][0]              \n",
      "                                                                 activation_46[0][0]              \n",
      "__________________________________________________________________________________________________\n",
      "activation_49 (Activation)      (None, 7, 7, 2048)   0           add_16[0][0]                     \n",
      "__________________________________________________________________________________________________\n",
      "avg_pool (GlobalAveragePooling2 (None, 2048)         0           activation_49[0][0]              \n",
      "==================================================================================================\n",
      "Total params: 23,587,712\n",
      "Trainable params: 23,534,592\n",
      "Non-trainable params: 53,120\n",
      "__________________________________________________________________________________________________\n"
     ]
    }
   ],
   "source": [
    "# Build a new model that is ResNet50 minus the very last layer\n",
    "last_layer = resnet_model.get_layer(\"avg_pool\")\n",
    "\n",
    "resnet_layers = keras.Model(inputs=resnet_model.inputs, outputs=last_layer.output)\n",
    "resnet_layers.summary()"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 13,
   "metadata": {},
   "outputs": [],
   "source": [
    "# We use our resnet to \"predict\" but because we have removed the top layer, \n",
    "# this outputs the activations of the second to last layer on our dataset\n",
    "\n",
    "x_train_features = resnet_layers.predict(x_train_preprocessed)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 14,
   "metadata": {},
   "outputs": [],
   "source": [
    "x_test_features = resnet_layers.predict(x_test_preprocessed)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 15,
   "metadata": {},
   "outputs": [],
   "source": [
    "feature_model=Sequential()\n",
    "feature_model.add(Dense(25, activation=\"sigmoid\"))\n",
    "feature_model.compile(loss=\"categorical_crossentropy\", optimizer=\"adam\", metrics=[\"accuracy\"])"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 16,
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "W&B Run: https://app.wandb.ai/mlclass/transfer learn/runs/fhj30zry\n",
      "Call `%%wandb` in the cell containing your training loop to display live results.\n",
      "Train on 4697 samples, validate on 250 samples\n",
      "Epoch 1/50\n",
      "4697/4697 [==============================] - 1s 315us/step - loss: 1.6686 - acc: 0.4880 - val_loss: 1.2663 - val_acc: 0.5880\n",
      "Epoch 2/50\n",
      "4697/4697 [==============================] - 1s 125us/step - loss: 0.6745 - acc: 0.8086 - val_loss: 1.0515 - val_acc: 0.6600\n",
      "Epoch 3/50\n",
      "4697/4697 [==============================] - 1s 127us/step - loss: 0.4548 - acc: 0.8844 - val_loss: 0.9101 - val_acc: 0.7080\n",
      "Epoch 4/50\n",
      "4697/4697 [==============================] - 1s 127us/step - loss: 0.3314 - acc: 0.9263 - val_loss: 0.8746 - val_acc: 0.7120\n",
      "Epoch 5/50\n",
      "4697/4697 [==============================] - 1s 118us/step - loss: 0.2507 - acc: 0.9500 - val_loss: 0.8200 - val_acc: 0.7600\n",
      "Epoch 6/50\n",
      "4697/4697 [==============================] - 1s 119us/step - loss: 0.1928 - acc: 0.9719 - val_loss: 0.8054 - val_acc: 0.7440\n",
      "Epoch 7/50\n",
      "4697/4697 [==============================] - 1s 121us/step - loss: 0.1535 - acc: 0.9821 - val_loss: 0.7945 - val_acc: 0.7600\n",
      "Epoch 8/50\n",
      "4697/4697 [==============================] - 1s 118us/step - loss: 0.1219 - acc: 0.9904 - val_loss: 0.7969 - val_acc: 0.7520\n",
      "Epoch 9/50\n",
      "4697/4697 [==============================] - 1s 117us/step - loss: 0.0984 - acc: 0.9957 - val_loss: 0.7987 - val_acc: 0.7480\n",
      "Epoch 10/50\n",
      "4697/4697 [==============================] - 1s 119us/step - loss: 0.0835 - acc: 0.9962 - val_loss: 0.8141 - val_acc: 0.7520\n",
      "Epoch 11/50\n",
      "4697/4697 [==============================] - 1s 118us/step - loss: 0.0692 - acc: 0.9994 - val_loss: 0.7949 - val_acc: 0.7600\n",
      "Epoch 12/50\n",
      "4697/4697 [==============================] - 1s 117us/step - loss: 0.0588 - acc: 0.9996 - val_loss: 0.7749 - val_acc: 0.7800\n",
      "Epoch 13/50\n",
      "4697/4697 [==============================] - 1s 117us/step - loss: 0.0503 - acc: 0.9994 - val_loss: 0.7562 - val_acc: 0.7800\n",
      "Epoch 14/50\n",
      "4697/4697 [==============================] - 1s 116us/step - loss: 0.0428 - acc: 1.0000 - val_loss: 0.7551 - val_acc: 0.7880\n",
      "Epoch 15/50\n",
      "4697/4697 [==============================] - 1s 120us/step - loss: 0.0383 - acc: 1.0000 - val_loss: 0.7725 - val_acc: 0.7760\n",
      "Epoch 16/50\n",
      "4697/4697 [==============================] - 1s 114us/step - loss: 0.0336 - acc: 1.0000 - val_loss: 0.7552 - val_acc: 0.7760\n",
      "Epoch 17/50\n",
      "4697/4697 [==============================] - 1s 114us/step - loss: 0.0303 - acc: 1.0000 - val_loss: 0.7592 - val_acc: 0.7720\n",
      "Epoch 18/50\n",
      "4697/4697 [==============================] - 1s 119us/step - loss: 0.0262 - acc: 1.0000 - val_loss: 0.7784 - val_acc: 0.7760\n",
      "Epoch 19/50\n",
      "4697/4697 [==============================] - 1s 119us/step - loss: 0.0234 - acc: 1.0000 - val_loss: 0.7594 - val_acc: 0.7760\n",
      "Epoch 20/50\n",
      "4697/4697 [==============================] - 1s 119us/step - loss: 0.0210 - acc: 1.0000 - val_loss: 0.7668 - val_acc: 0.7720\n",
      "Epoch 21/50\n",
      "4697/4697 [==============================] - 1s 117us/step - loss: 0.0192 - acc: 1.0000 - val_loss: 0.7636 - val_acc: 0.7840\n",
      "Epoch 22/50\n",
      "4697/4697 [==============================] - 1s 122us/step - loss: 0.0172 - acc: 1.0000 - val_loss: 0.7720 - val_acc: 0.7760\n",
      "Epoch 23/50\n",
      "4697/4697 [==============================] - 1s 117us/step - loss: 0.0157 - acc: 1.0000 - val_loss: 0.7745 - val_acc: 0.7800\n",
      "Epoch 24/50\n",
      "4697/4697 [==============================] - 1s 118us/step - loss: 0.0143 - acc: 1.0000 - val_loss: 0.7682 - val_acc: 0.7840\n",
      "Epoch 25/50\n",
      "4697/4697 [==============================] - 1s 119us/step - loss: 0.0129 - acc: 1.0000 - val_loss: 0.7853 - val_acc: 0.7720\n",
      "Epoch 26/50\n",
      "4697/4697 [==============================] - 1s 117us/step - loss: 0.0119 - acc: 1.0000 - val_loss: 0.7855 - val_acc: 0.7800\n",
      "Epoch 27/50\n",
      "4697/4697 [==============================] - 1s 116us/step - loss: 0.0108 - acc: 1.0000 - val_loss: 0.7590 - val_acc: 0.7880\n",
      "Epoch 28/50\n",
      "4697/4697 [==============================] - 1s 114us/step - loss: 0.0099 - acc: 1.0000 - val_loss: 0.7731 - val_acc: 0.7840\n",
      "Epoch 29/50\n",
      "4697/4697 [==============================] - 1s 121us/step - loss: 0.0092 - acc: 1.0000 - val_loss: 0.7970 - val_acc: 0.7800\n",
      "Epoch 30/50\n",
      "4697/4697 [==============================] - 1s 118us/step - loss: 0.0084 - acc: 1.0000 - val_loss: 0.8024 - val_acc: 0.7880\n",
      "Epoch 31/50\n",
      "4697/4697 [==============================] - 1s 118us/step - loss: 0.0077 - acc: 1.0000 - val_loss: 0.7973 - val_acc: 0.7840\n",
      "Epoch 32/50\n",
      "4697/4697 [==============================] - 1s 119us/step - loss: 0.0072 - acc: 1.0000 - val_loss: 0.7964 - val_acc: 0.7840\n",
      "Epoch 33/50\n",
      "4697/4697 [==============================] - 1s 119us/step - loss: 0.0066 - acc: 1.0000 - val_loss: 0.7938 - val_acc: 0.7920\n",
      "Epoch 34/50\n",
      "4697/4697 [==============================] - 1s 117us/step - loss: 0.0061 - acc: 1.0000 - val_loss: 0.8105 - val_acc: 0.7880\n",
      "Epoch 35/50\n",
      "4697/4697 [==============================] - 1s 117us/step - loss: 0.0056 - acc: 1.0000 - val_loss: 0.8242 - val_acc: 0.7800\n",
      "Epoch 36/50\n",
      "4697/4697 [==============================] - 1s 119us/step - loss: 0.0052 - acc: 1.0000 - val_loss: 0.8039 - val_acc: 0.8000\n",
      "Epoch 37/50\n",
      "4697/4697 [==============================] - 1s 119us/step - loss: 0.0048 - acc: 1.0000 - val_loss: 0.8109 - val_acc: 0.7840\n",
      "Epoch 38/50\n",
      "4697/4697 [==============================] - 1s 117us/step - loss: 0.0045 - acc: 1.0000 - val_loss: 0.8186 - val_acc: 0.8000\n",
      "Epoch 39/50\n",
      "4697/4697 [==============================] - 1s 122us/step - loss: 0.0041 - acc: 1.0000 - val_loss: 0.8185 - val_acc: 0.7920\n",
      "Epoch 40/50\n",
      "4697/4697 [==============================] - 1s 118us/step - loss: 0.0038 - acc: 1.0000 - val_loss: 0.8174 - val_acc: 0.7880\n",
      "Epoch 41/50\n",
      "4697/4697 [==============================] - 1s 118us/step - loss: 0.0036 - acc: 1.0000 - val_loss: 0.8179 - val_acc: 0.7920\n",
      "Epoch 42/50\n",
      "4697/4697 [==============================] - 1s 117us/step - loss: 0.0033 - acc: 1.0000 - val_loss: 0.8350 - val_acc: 0.7800\n",
      "Epoch 43/50\n",
      "4697/4697 [==============================] - 1s 120us/step - loss: 0.0031 - acc: 1.0000 - val_loss: 0.8376 - val_acc: 0.7840\n",
      "Epoch 44/50\n",
      "4697/4697 [==============================] - 1s 119us/step - loss: 0.0028 - acc: 1.0000 - val_loss: 0.8385 - val_acc: 0.7920\n",
      "Epoch 45/50\n",
      "4697/4697 [==============================] - 1s 118us/step - loss: 0.0026 - acc: 1.0000 - val_loss: 0.8716 - val_acc: 0.7720\n",
      "Epoch 46/50\n",
      "4697/4697 [==============================] - 1s 120us/step - loss: 0.0025 - acc: 1.0000 - val_loss: 0.8523 - val_acc: 0.7880\n",
      "Epoch 47/50\n",
      "4697/4697 [==============================] - 1s 117us/step - loss: 0.0023 - acc: 1.0000 - val_loss: 0.8606 - val_acc: 0.7840\n",
      "Epoch 48/50\n",
      "4697/4697 [==============================] - 1s 116us/step - loss: 0.0021 - acc: 1.0000 - val_loss: 0.8487 - val_acc: 0.7840\n",
      "Epoch 49/50\n",
      "4697/4697 [==============================] - 1s 117us/step - loss: 0.0020 - acc: 1.0000 - val_loss: 0.8801 - val_acc: 0.7800\n",
      "Epoch 50/50\n",
      "4697/4697 [==============================] - 1s 119us/step - loss: 0.0018 - acc: 1.0000 - val_loss: 0.8767 - val_acc: 0.7680\n"
     ]
    },
    {
     "data": {
      "text/plain": [
       "<keras.callbacks.History at 0x7fc848347780>"
      ]
     },
     "execution_count": 16,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "wandb.init(project=\"transfer learn\")\n",
    "feature_model.fit(x_train_features, y_train, epochs=50, validation_data=(x_test_features, y_test), callbacks=[WandbCallback()])"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 17,
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "_________________________________________________________________\n",
      "Layer (type)                 Output Shape              Param #   \n",
      "=================================================================\n",
      "model_1 (Model)              (None, 2048)              23587712  \n",
      "_________________________________________________________________\n",
      "dense_3 (Dense)              (None, 25)                51225     \n",
      "=================================================================\n",
      "Total params: 23,638,937\n",
      "Trainable params: 51,225\n",
      "Non-trainable params: 23,587,712\n",
      "_________________________________________________________________\n"
     ]
    }
   ],
   "source": [
    "# We can directly stich the models together\n",
    "\n",
    "new_model=Sequential()\n",
    "new_model.add(resnet_layers)\n",
    "new_model.add(Dense(25, activation=\"sigmoid\"))\n",
    "\n",
    "new_model.layers[0].trainable=False\n",
    "\n",
    "new_model.compile(loss=\"categorical_crossentropy\", optimizer=\"adam\", metrics=[\"accuracy\"])\n",
    "\n",
    "new_model.summary()"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 18,
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "W&B Run: https://app.wandb.ai/mlclass/transfer learn/runs/xerthmqh\n",
      "Call `%%wandb` in the cell containing your training loop to display live results.\n",
      "Train on 4697 samples, validate on 250 samples\n",
      "Epoch 1/50\n",
      "4697/4697 [==============================] - 43s 9ms/step - loss: 1.7996 - acc: 0.4826 - val_loss: 2.0460 - val_acc: 0.4000\n",
      "Epoch 2/50\n",
      "4697/4697 [==============================] - 41s 9ms/step - loss: 0.8081 - acc: 0.7739 - val_loss: 2.0796 - val_acc: 0.4360\n",
      "Epoch 3/50\n",
      "4697/4697 [==============================] - 41s 9ms/step - loss: 0.5515 - acc: 0.8567 - val_loss: 1.9751 - val_acc: 0.4120\n",
      "Epoch 4/50\n",
      "4697/4697 [==============================] - 41s 9ms/step - loss: 0.4258 - acc: 0.8948 - val_loss: 1.9526 - val_acc: 0.4560\n",
      "Epoch 5/50\n",
      "4672/4697 [============================>.] - ETA: 0s - loss: 0.3375 - acc: 0.9195"
     ]
    },
    {
     "ename": "KeyboardInterrupt",
     "evalue": "",
     "output_type": "error",
     "traceback": [
      "\u001b[0;31m---------------------------------------------------------------------------\u001b[0m",
      "\u001b[0;31mKeyboardInterrupt\u001b[0m                         Traceback (most recent call last)",
      "\u001b[0;32m<ipython-input-18-0b1572714d5e>\u001b[0m in \u001b[0;36m<module>\u001b[0;34m\u001b[0m\n\u001b[1;32m      1\u001b[0m \u001b[0mwandb\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0minit\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mproject\u001b[0m\u001b[0;34m=\u001b[0m\u001b[0;34m\"transfer learn\"\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0;32m----> 2\u001b[0;31m \u001b[0mnew_model\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mfit\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mx_train_preprocessed\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0my_train\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mepochs\u001b[0m\u001b[0;34m=\u001b[0m\u001b[0;36m50\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mvalidation_data\u001b[0m\u001b[0;34m=\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mx_test_preprocessed\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0my_test\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mcallbacks\u001b[0m\u001b[0;34m=\u001b[0m\u001b[0;34m[\u001b[0m\u001b[0mWandbCallback\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m]\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0m",
      "\u001b[0;32m/usr/local/lib/python3.6/dist-packages/keras/engine/training.py\u001b[0m in \u001b[0;36mfit\u001b[0;34m(self, x, y, batch_size, epochs, verbose, callbacks, validation_split, validation_data, shuffle, class_weight, sample_weight, initial_epoch, steps_per_epoch, validation_steps, **kwargs)\u001b[0m\n\u001b[1;32m   1037\u001b[0m                                         \u001b[0minitial_epoch\u001b[0m\u001b[0;34m=\u001b[0m\u001b[0minitial_epoch\u001b[0m\u001b[0;34m,\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m   1038\u001b[0m                                         \u001b[0msteps_per_epoch\u001b[0m\u001b[0;34m=\u001b[0m\u001b[0msteps_per_epoch\u001b[0m\u001b[0;34m,\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0;32m-> 1039\u001b[0;31m                                         validation_steps=validation_steps)\n\u001b[0m\u001b[1;32m   1040\u001b[0m \u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m   1041\u001b[0m     def evaluate(self, x=None, y=None,\n",
      "\u001b[0;32m/usr/local/lib/python3.6/dist-packages/keras/engine/training_arrays.py\u001b[0m in \u001b[0;36mfit_loop\u001b[0;34m(model, f, ins, out_labels, batch_size, epochs, verbose, callbacks, val_f, val_ins, shuffle, callback_metrics, initial_epoch, steps_per_epoch, validation_steps)\u001b[0m\n\u001b[1;32m    210\u001b[0m                         val_outs = test_loop(model, val_f, val_ins,\n\u001b[1;32m    211\u001b[0m                                              \u001b[0mbatch_size\u001b[0m\u001b[0;34m=\u001b[0m\u001b[0mbatch_size\u001b[0m\u001b[0;34m,\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0;32m--> 212\u001b[0;31m                                              verbose=0)\n\u001b[0m\u001b[1;32m    213\u001b[0m                         \u001b[0mval_outs\u001b[0m \u001b[0;34m=\u001b[0m \u001b[0mto_list\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mval_outs\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m    214\u001b[0m                         \u001b[0;31m# Same labels assumed.\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n",
      "\u001b[0;32m/usr/local/lib/python3.6/dist-packages/keras/engine/training_arrays.py\u001b[0m in \u001b[0;36mtest_loop\u001b[0;34m(model, f, ins, batch_size, verbose, steps)\u001b[0m\n\u001b[1;32m    390\u001b[0m                 \u001b[0mins_batch\u001b[0m\u001b[0;34m[\u001b[0m\u001b[0mi\u001b[0m\u001b[0;34m]\u001b[0m \u001b[0;34m=\u001b[0m \u001b[0mins_batch\u001b[0m\u001b[0;34m[\u001b[0m\u001b[0mi\u001b[0m\u001b[0;34m]\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mtoarray\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m    391\u001b[0m \u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0;32m--> 392\u001b[0;31m             \u001b[0mbatch_outs\u001b[0m \u001b[0;34m=\u001b[0m \u001b[0mf\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mins_batch\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0m\u001b[1;32m    393\u001b[0m             \u001b[0;32mif\u001b[0m \u001b[0misinstance\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mbatch_outs\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mlist\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m:\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m    394\u001b[0m                 \u001b[0;32mif\u001b[0m \u001b[0mbatch_index\u001b[0m \u001b[0;34m==\u001b[0m \u001b[0;36m0\u001b[0m\u001b[0;34m:\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n",
      "\u001b[0;32m/usr/local/lib/python3.6/dist-packages/keras/backend/tensorflow_backend.py\u001b[0m in \u001b[0;36m__call__\u001b[0;34m(self, inputs)\u001b[0m\n\u001b[1;32m   2713\u001b[0m                 \u001b[0;32mreturn\u001b[0m \u001b[0mself\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0m_legacy_call\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0minputs\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m   2714\u001b[0m \u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0;32m-> 2715\u001b[0;31m             \u001b[0;32mreturn\u001b[0m \u001b[0mself\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0m_call\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0minputs\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0m\u001b[1;32m   2716\u001b[0m         \u001b[0;32melse\u001b[0m\u001b[0;34m:\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m   2717\u001b[0m             \u001b[0;32mif\u001b[0m \u001b[0mpy_any\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mis_tensor\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mx\u001b[0m\u001b[0;34m)\u001b[0m \u001b[0;32mfor\u001b[0m \u001b[0mx\u001b[0m \u001b[0;32min\u001b[0m \u001b[0minputs\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m:\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n",
      "\u001b[0;32m/usr/local/lib/python3.6/dist-packages/keras/backend/tensorflow_backend.py\u001b[0m in \u001b[0;36m_call\u001b[0;34m(self, inputs)\u001b[0m\n\u001b[1;32m   2673\u001b[0m             \u001b[0mfetched\u001b[0m \u001b[0;34m=\u001b[0m \u001b[0mself\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0m_callable_fn\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0;34m*\u001b[0m\u001b[0marray_vals\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mrun_metadata\u001b[0m\u001b[0;34m=\u001b[0m\u001b[0mself\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mrun_metadata\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m   2674\u001b[0m         \u001b[0;32melse\u001b[0m\u001b[0;34m:\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0;32m-> 2675\u001b[0;31m             \u001b[0mfetched\u001b[0m \u001b[0;34m=\u001b[0m \u001b[0mself\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0m_callable_fn\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0;34m*\u001b[0m\u001b[0marray_vals\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0m\u001b[1;32m   2676\u001b[0m         \u001b[0;32mreturn\u001b[0m \u001b[0mfetched\u001b[0m\u001b[0;34m[\u001b[0m\u001b[0;34m:\u001b[0m\u001b[0mlen\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mself\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0moutputs\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m]\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m   2677\u001b[0m \u001b[0;34m\u001b[0m\u001b[0m\n",
      "\u001b[0;32m/usr/local/lib/python3.6/dist-packages/tensorflow/python/client/session.py\u001b[0m in \u001b[0;36m__call__\u001b[0;34m(self, *args, **kwargs)\u001b[0m\n\u001b[1;32m   1397\u001b[0m           ret = tf_session.TF_SessionRunCallable(\n\u001b[1;32m   1398\u001b[0m               \u001b[0mself\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0m_session\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0m_session\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mself\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0m_handle\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0margs\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mstatus\u001b[0m\u001b[0;34m,\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0;32m-> 1399\u001b[0;31m               run_metadata_ptr)\n\u001b[0m\u001b[1;32m   1400\u001b[0m         \u001b[0;32mif\u001b[0m \u001b[0mrun_metadata\u001b[0m\u001b[0;34m:\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m   1401\u001b[0m           \u001b[0mproto_data\u001b[0m \u001b[0;34m=\u001b[0m \u001b[0mtf_session\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mTF_GetBuffer\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mrun_metadata_ptr\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n",
      "\u001b[0;31mKeyboardInterrupt\u001b[0m: "
     ]
    }
   ],
   "source": [
    "wandb.init(project=\"transfer learn\")\n",
    "new_model.fit(x_train_preprocessed, y_train, epochs=50, validation_data=(x_test_preprocessed, y_test), callbacks=[WandbCallback()])"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": null,
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "W&B Run: https://app.wandb.ai/mlclass/transfer learn/runs/udba14n9\n",
      "Call `%%wandb` in the cell containing your training loop to display live results.\n",
      "Train on 4697 samples, validate on 250 samples\n",
      "Epoch 1/50\n",
      "4697/4697 [==============================] - 53s 11ms/step - loss: 0.5487 - acc: 0.8427 - val_loss: 1.0094 - val_acc: 0.6840\n",
      "Epoch 2/50\n",
      "4697/4697 [==============================] - 47s 10ms/step - loss: 0.1611 - acc: 0.9576 - val_loss: 1.1052 - val_acc: 0.7120\n",
      "Epoch 3/50\n",
      "4697/4697 [==============================] - 47s 10ms/step - loss: 0.0963 - acc: 0.9742 - val_loss: 1.3093 - val_acc: 0.6720\n",
      "Epoch 4/50\n",
      "4697/4697 [==============================] - 47s 10ms/step - loss: 0.0596 - acc: 0.9862 - val_loss: 1.0734 - val_acc: 0.7160\n",
      "Epoch 5/50\n",
      "4697/4697 [==============================] - 47s 10ms/step - loss: 0.0439 - acc: 0.9896 - val_loss: 1.1619 - val_acc: 0.7320\n",
      "Epoch 6/50\n",
      "4697/4697 [==============================] - 47s 10ms/step - loss: 0.0240 - acc: 0.9949 - val_loss: 1.0267 - val_acc: 0.7360\n",
      "Epoch 7/50\n",
      "4697/4697 [==============================] - 47s 10ms/step - loss: 0.0376 - acc: 0.9894 - val_loss: 1.1485 - val_acc: 0.7400\n",
      "Epoch 8/50\n",
      "4697/4697 [==============================] - 46s 10ms/step - loss: 0.0505 - acc: 0.9862 - val_loss: 1.1099 - val_acc: 0.7120\n",
      "Epoch 9/50\n",
      "1664/4697 [=========>....................] - ETA: 28s - loss: 0.0326 - acc: 0.9922"
     ]
    }
   ],
   "source": [
    "# We can allow some of the resnet layers to change as we train.  \n",
    "# Typically you would want to lower the learning rate in conjunction with this.\n",
    "\n",
    "new_model.layers[0].trainable = True\n",
    "\n",
    "# We let the last 3 blocks train\n",
    "for layer in new_model.layers[0].layers[:-11]:\n",
    "    layer.trainable = False\n",
    "for layer in new_model.layers[0].layers[-11:]:\n",
    "    layer.trainable = True\n",
    "    \n",
    "new_model.compile(loss=\"categorical_crossentropy\", optimizer=\"adam\", metrics=[\"accuracy\"])\n",
    "\n",
    "wandb.init(project=\"transfer learn\")\n",
    "new_model.fit(x_train_preprocessed, y_train, epochs=50, validation_data=(x_test_preprocessed, y_test), callbacks=[WandbCallback()])"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": null,
   "metadata": {},
   "outputs": [],
   "source": []
  }
 ],
 "metadata": {
  "kernelspec": {
   "display_name": "Python 3",
   "language": "python",
   "name": "python3"
  },
  "language_info": {
   "codemirror_mode": {
    "name": "ipython",
    "version": 3
   },
   "file_extension": ".py",
   "mimetype": "text/x-python",
   "name": "python",
   "nbconvert_exporter": "python",
   "pygments_lexer": "ipython3",
   "version": "3.6.8"
  }
 },
 "nbformat": 4,
 "nbformat_minor": 2
}
